Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.04.2020, 13:58
Аспирант
Отправить личное сообщение для Alehana Посмотреть профиль Найти все сообщения от Alehana
 
Регистрация: 22.01.2019
Сообщений: 61

Как скопировать файл через jQuery ?
В форме может быть любое количество инпутов типа file класса "objectimages'. При нажатии на кнопку все выбранные в них файлы должны скопироваться в специальную папку.
let fd = new FormData;
$(".objectimages").each(function () {
       if ($(this).val()!=""){
      fd.append($(this).files[0]["name"],$(this).prop('files')[0]);
                                                }
                                            });
$.ajax({
       url:"Адрес обработчика",
                                                data: fd,
                                                processData: false,
                                                contentType: false,
                                                type: 'POST',
                                                success: function (result) {
                                                   
                                                }
                                            });

В обработчике
if (count($_FILES)!=0){
foreach ($_FILES as $elem){
    $destiation_dir = 'адрес папки/'.$elem['name'];
   if (!file_exists($destiation_dir)) {
     
       copy($elem['tmp_name'], $destiation_dir);
       
   }
}
}


При попытке использовать код в консоли выдает "TypeError: $(...).files is undefined". Как его правильно переделать ?
Ответить с цитированием
  #2 (permalink)  
Старый 13.04.2020, 14:04
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,831

Попробуйте так:
let requestFormData = new FormData;

$('.objectimages').each(function() {
    if (!this.files) {
        return;
    }
    
    [].forEach.call(this.files, function (file) {
        requestFormData.append(file.name, file);
    });
});

$.ajax({
    url: 'Адрес обработчика',
    data: requestFormData,
    processData: false,
    contentType: false,
    type: 'POST',
    success: function(result) {

    }
});


https://beautifier.io/
Ответить с цитированием
  #3 (permalink)  
Старый 13.04.2020, 16:05
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Alehana,
нельзя так на сервере производить загрузку файлов. Почитайте о безопасной загрузке файлов на сервер.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать печать стороннего HTML файла через js/jquery. Defrazo Общие вопросы Javascript 0 22.03.2017 19:55
как вставить элемент ? желательно через jquery ninzzo Events/DOM/Window 10 09.07.2014 22:09
Асинхронная отправка файла через jQuery InviS jQuery 3 23.04.2013 22:27
Как правильно подгрузить jQuery Siton jQuery 4 15.06.2009 09:54
подгрузка файлов через jQuery imdogma jQuery 4 05.05.2009 21:46